package entities;

import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.Table;

@Entity
@Table(name = "LIDMAATSCHAP")
public class Lidmaatschap
{
	private int id;
	/*
	 * Contributie moet voor het volgende contributietermijn zijn betaald.
	 */
	private Date contributietermijn;
	private Lid lid;
	private Contributie contributie;
	
	// Constructors
	
	/**
	 * Constructor voor Hibernate
	 */
	@SuppressWarnings("unused")
	private Lidmaatschap()
	{
		
	}
	public Lidmaatschap(Lid lid, Date contributietermijn)
	{
		this.lid = lid;
		this.contributietermijn = contributietermijn;
	}
	
	// Getters en Setters
	
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name = "id")
	public int getId()
	{
		return id;
	}
	public void setId(int id)
	{
		this.id = id;
	}
	@Column(name = "contributietermijn")
	public Date getContributietermijn()
	{
		return contributietermijn;
	}
	public void setContributietermijn(Date contributietermijn)
	{
		this.contributietermijn = contributietermijn;
	}
	@OneToOne(cascade = CascadeType.ALL)
	public Lid getLid()
	{
		return lid;
	}
	public void setLid(Lid lid)
	{
		this.lid = lid;
	}
	@OneToOne(cascade = CascadeType.ALL)
	public Contributie getContributie()
	{
		return contributie;
	}
	public void setContributie(Contributie contributie)
	{
		this.contributie = contributie;
	}
	
	// Methods
}
